1. Field of the Invention
The present invention generally relates to digital data communications, and more particularly to the control of digital data transmissions over asymmetric bandwidth links, such as over asymmetric digital subscriber lines (ADSL), so as to minimize the data slow-down that occurs do to the required handshaking in the upstream transmission direction.
2. Discussion of the Related Art
As is generally known, contemporary computer and communication systems are designed to be compliant with the seven layer OSI model. In this regard, communications among devices generally implicate the lower three to four layers of the OSI model. These include the physical, data link, network, and transport layers. For example, in packet switched and frame relay technologies, internode communications affect, and are controlled by, the lower three layers (physical, data link, and network). However, the higher lever transport layer may be utilized for purposes of error control.
By way of a more particular illustration, networked transmissions on the World Wide Web of the Internet are generally governed by TCP/IP (Transmission Control Protocol/Internet Protocol), which is really a family of protocols. The TCP/IP protocols affect the network layer, transport layer, and application layer, but are generally transparent to the remaining layers of the OSI model. Within the network layer, TCP/IP offers a variety of protocols, of which the Internet Protocol (IP) offers the ability to move data between hosts. The remaining protocols offer services to assist IP in its functions. The transport layer provides services that allow one application program on a particular host to communicate with another application program on a remote host. Transmission Control Protocol (TCP) is utilized at the transport layer to effect bi-directional handshaking for the transmission and control of data packets being sent between hosts. The application layer of TCP/IP generally formats data that is to be communicated to a remote host and performs other services that are necessary to accommodate this communication. In summary, the application layer creates data that is passed to the transport layer, which in turn employs transmission control. The transport layer then passes the data/messages to the network layer, which divides the messages into defined, discrete pieces, also called packets. As is known, these packets are further divided into frames at the data link layer and bits at the physical layer for transmission to remote nodes.
For purposes of this application in the present invention, the focus will be maintained on the network and transport layers of the OSI model. Looking first at the network layer, the Internet Protocol (IP) provides an unreliable, connectionless method of delivering data from one host to another. It is characterized as unreliable because the method does not guaranty delivery and, in fact, provides no particular sequencing to even assure that data packets are received in the order in which they are transmitted. It is referred to as connectionless, because no initialization sequence is necessary in order for one host to connect with another using the IP protocol. Furthermore, each data packet is independent of every other data packet.
Above the network layer is the transport layer, which handles the TCP protocol. While the packet transmission at the network layer is deemed to be unreliable, error and flow control may be implemented at the higher, transport layer. In this regard, TCP is utilized to establish reliable end-to-end transmissions. More particularly, and as is known, TCP places certain handshaking requirements on the transmission of data packets. For each data packet transmitted, an acknowledgment packet must be received. The reception of an acknowledgment informs the transmitting node (that received the acknowledgment) that the packet was successfully received at the other end. Unless an acknowledgment is "piggy-backed" onto a return data packet, the acknowledgment package is generally very short in length.
Information access services such as the Internet, have precipitated the development and expansion of services such as Asymmetric Digital Subscriber Line (ADSL) data services. As is known, ADSL services attempt to maximize the bandwidth utilization of a data link by allocating a larger bandwidth in one transmitting direction than is allocated in the opposing transmitting direction. An Internet user, for example, will generally receive much more data from an Internet service provider than will be transmitted from the user to the service provider. By providing an asymmetric bandwidth across this link, better overall bandwidth utilization is achieved. While this improves performance over that communication link, certain problems have, nevertheless, been identified. Notably, the problem of "data slow-down" which results from the upstream (smaller bandwidth) direction of acknowledgment packets, in response to each data packet received in the downstream direction.
To illustrate this problem with real-world numbers, TCP/IP generally defines the size of data packets to range between 40 and 560 bytes in links. In this way, a fully utilized data packet will generally be limited to 560 bytes. An acknowledgment packet (not piggy-backed onto a data packet) will generally comprise the smallest packet size, of approximately 40 bytes. This amounts to a traffic ratio of approximately 14:1. If a node (such as an Internet service provider) has a fairly large amount of data to transmit to a downstream node (e.g., a user), it must partition this data into a number of data packets. However, rather than being able to transmit these data packets one after another in immediate succession, the transmitting node must await the receipt of acknowledgment packets from the downstream node. If configured to receive acknowledgments in a one-to-one ratio, the transmitting node must wait to receive an acknowledgment for each data packet transmitted, before transmitting a subsequent data packet. Since this results in undue idle time, on the part of the transmitting node, most systems are generally designed to provide a "window"(e.g., window defined in TCP header) to permit the transmission of a predetermined number of data packets, without receiving an acknowledgment packet. For purposes of illustration, assume the window size is four packets. The transmitting node, then, could transmit data packets one through four before receiving an acknowledgment of the first data packet. Thereafter, the transmitting node would be limited to transmitting on a one-to-one basis. That is, for each subsequent data packet transmitted to the downstream node, it must await the receipt of an acknowledgment packet. The net result of this flow control handshaking (as implemented by TCP), is commonly referred to as data slow-down. The slowdown is manifest as intermittent periods of idle time at the transmitting node, while it awaits the receipt of acknowledgment packets, before continuing the transmission of data packets.
One solution to this problem has been to permit an end point node (downstream node) to acknowledge the receipt of multiple data packets with a single acknowledgment packet. While this has further improved the overall communication throughput over asymmetric bandwidth communication links, further improvements are desired. Specifically, it is recognized that, in the present state of the art, data slowdown can still occur at intermediate nodes of a communication path. Applicants are unaware of any prior art solutions that address this problem. Namely, where an intermediate node is disposed between end point nodes, and an asymmetric bandwidth communication link is provided on one side of the intermediate node, while a high speed symmetric link is defined on the opposite side of the downstream node.
Accordingly, there is a need to address this and other related shortcomings in the art.